package org.jeecg.modules.wlhy.hydriver.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecgframework.poi.excel.annotation.Excel;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.Size;
import java.io.Serializable;

/**
 * @Description: 司机管理
 * @Author: duanlikao
 * @Date:   2020-12-02
 * @Version: V1.0
 */
@Data
@TableName("hy_driver")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="hy_driver对象", description="司机管理")
public class HyDriverReq implements Serializable {
    private static final long serialVersionUID = 1L;

	/**id*/
	@TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "id")
    private String id;

    @ApiModelProperty(value = "userId")
    private String userId;

	/**姓名*/
	@Excel(name = "姓名", width = 15)
    @ApiModelProperty(value = "姓名")
    @NotEmpty(message = "司机姓名不允许为空")
    private String driverName;
	/**身份证号*/
	@Excel(name = "身份证号", width = 15)
    @ApiModelProperty(value = "身份证号")
    @NotEmpty(message = "身份证号不允许为空")
    private String idcard;

    /**身份证有效期自*/
    @Excel(name = "身份证有效期自", width = 15, format = "yyyy-MM-dd")
    @ApiModelProperty(value = "身份证有效期自")
    private String idcardValidFrom;


	/**身份证有效期至*/
	@Excel(name = "身份证有效期至", width = 15, format = "yyyy-MM-dd")
    @ApiModelProperty(value = "身份证有效期至")
    private String idcardExpiredDate;



	/**身份证正面照片*/
	@Excel(name = "身份证正面照片", width = 15)
    @ApiModelProperty(value = "身份证正面照片")
    @NotEmpty(message = "身份证正面照片不允许为空")
    private String idcardImg;
	/**身份证反面面照片*/
	@Excel(name = "身份证反面面照片", width = 15)
    @ApiModelProperty(value = "身份证反面面照片")
    @NotEmpty(message = "身份证反面面照片不允许为空")
    private String idcardImgBack;
	/**性别*/
	@Excel(name = "性别", width = 15, dicCode = "sex")
	@Dict(dicCode = "sex")
    @ApiModelProperty(value = "性别")
    private String sex;
	/** 手机号 */
	@Excel(name = " 手机号 ", width = 15)
    @ApiModelProperty(value = " 手机号 ")
    @NotEmpty(message = "手机号不允许为空")
    @Size(max = 11,min = 11,message = "手机号应为11位数")
    private String telephone;
	/**籍贯*/
	@Excel(name = "籍贯", width = 15)
    @ApiModelProperty(value = "籍贯")
    private String nativePlace;
	/**民族*/
	@Excel(name = "民族", width = 15)
    @ApiModelProperty(value = "民族")
    private String nation;
	/**生日*/
	@Excel(name = "生日", width = 15, format = "yyyy-MM-dd")
    @ApiModelProperty(value = "生日")
    private String birthday;
	/**住址*/
	@Excel(name = "住址", width = 15)
    @ApiModelProperty(value = "住址")
    private String address;
	/**所属承运商*/
	@Excel(name = "所属承运商", width = 15, dictTable = "hy_carrier", dicText = "carrier_name", dicCode = "id")
	@Dict(dictTable = "hy_carrier", dicText = "carrier_name", dicCode = "id")
    @ApiModelProperty(value = "所属承运商")
    private String carrierId;
	/**驾驶证号(身份证号)*/
	@Excel(name = "驾驶证号(身份证号)", width = 15)
    @ApiModelProperty(value = "驾驶证号(身份证号)")
    @NotEmpty(message = "驾驶证号(身份证号)不允许为空")
    private String drivingLicense;
	/**驾驶证正面照*/
	@Excel(name = "驾驶证正面照", width = 15)
    @ApiModelProperty(value = "驾驶证正面照")
    @NotEmpty(message = "驾驶证正面照不允许为空")
    private String driverImg;
	/**驾驶证副页照片*/
	@Excel(name = "驾驶证副页照片", width = 15)
    @ApiModelProperty(value = "驾驶证副页照片")
//    @NotEmpty(message = "驾驶证副页照片不允许为空")
    private String driverImg2;
	/**准驾车型*/
	@Excel(name = "准驾车型", width = 15)
	//@Dict(dicCode = "vehicle_class")
    @ApiModelProperty(value = "准驾车型")
    @NotEmpty(message = "准驾车型不允许为空")
    private String vehicleClass;

	/**驾驶证发证机关*/
	@Excel(name = "驾驶证发证机关", width = 15)
    @ApiModelProperty(value = "驾驶证发证机关")
    @NotEmpty(message = "驾驶证发证机关不允许为空")
    private  String issuingOrganizations;

    /**驾驶证首次签发日期*/
    @Excel(name = "驾驶证首次签发日期", width = 15, format = "yyyy-MM-dd")
    @ApiModelProperty(value = "驾驶证首次签发日期")
    private String issueStartDate;

	/**驾驶证有效期自*/
	@Excel(name = "驾驶证有效期自", width = 15, format = "yyyy-MM-dd")
    @ApiModelProperty(value = "驾驶证有效期自")
    @NotEmpty(message = "驾驶证有效期自不允许为空")
    private String validPeriodFrom;
	/**驾驶证有效期至*/
	@Excel(name = "驾驶证有效期至", width = 15, format = "yyyy-MM-dd")
    @ApiModelProperty(value = "驾驶证有效期至")
    //@NotEmpty(message = "驾驶证有效期至不允许为空")
    private String validPeriodTo;

	/**所驾驶车辆总重量类别(1、大于4.5吨 2、 4.5吨及一下 )*/
	@Excel(name = "所驾驶车辆总重量类别(1、大于4.5吨 2、 4.5吨及一下 )", width = 15, dicCode = "weight_type")
	@Dict(dicCode = "weight_type")
    @ApiModelProperty(value = "所驾驶车辆总重量类别(1、大于4.5吨 2、 4.5吨及一下 )")
    private String weightType;
	/**从业资格证号*/
	@Excel(name = "从业资格证号", width = 15)
    @ApiModelProperty(value = "从业资格证号")
    private String qualificationCertificate;
	/**从业资格证照片*/
	@Excel(name = "从业资格证照片", width = 15)
    @ApiModelProperty(value = "从业资格证照片")
    private String qualificationImg;
	/**从业资格证有效期*/
	@Excel(name = "从业资格证有效期", width = 15, format = "yyyy-MM-dd")
    @ApiModelProperty(value = "从业资格证有效期")
    private String qualificationExpiredDate;

    /**是否挂靠(1表示是 0表示否)*/
    @Excel(name = "是否挂靠(1表示是 0表示否)", width = 15)
    @ApiModelProperty(value = "是否挂靠(1表示是 0表示否)")
//    @NotEmpty(message = "是否挂靠不允许为空")
    private String izAffiliation;

    /**挂靠协议*/
    @Excel(name = "挂靠协议", width = 15)
    @ApiModelProperty(value = "挂靠协议")
    private String affiliationAgreement;

    /**创建人*/
    @ApiModelProperty(value = "创建人")
    private String createBy;

    /**行政区划代码*/
    @Excel(name = "行政区划代码", width = 15)
    @ApiModelProperty(value = "行政区划代码")
    private String areaCode;

    /**审核状态(0待提交 1待审核 2审核通过3审核失败)*/
    //	@Excel(name = "审核状态(0待审核 1审核通过 2审核失败)", width = 15)
    @ApiModelProperty(value = "审核状态(0待提交 1待审核 2审核通过3审核失败)")
    private java.lang.String examineStatus;

    @ApiModelProperty(value = "司机签名图片")
    private java.lang.String driverAutograph;


}
